The present invention relates to the automatic discovery of a client computer""s class and the creation of an instance of that class by a server in a remote boot environment.
A computer or computer system, when turned on, must be prepared for operation by loading an operating system. If the computer has hardware associated with it, then appropriate drivers for the hardware of the computer must be loaded. In the normal operation of a single computer system, when a user issues a boot command to the computer, the computer responds to the boot command by attempting to retrieve the operating system files from the computer systems memory. Configuration data files are also needed to configure the specific machine with the hardware parameters necessary for the specific hardware configuration. These files also contain information needed to initialize videos, printers, and peripherals associated with the particular machine. For example, the files would include CONFIG.SYS in the MS-DOS operating system, available from Microsoft Corporation.
Computers or computer systems can be connected in a network normally consisting of a client workstation, a server and a central network. In a system where the computer""s storage is maintained when the power is turned off, the operating system can be stored in the computer itself. In a system where the computer has only storage that is lost when the power is turned off, the computer cannot retrieve the boot information from within the computer itself. In that case, the client sends a request for the operating system files via the network to the server acting as a boot server. Even when the client workstation has non-volatile storage capability, it is advantageous to boot from the server because memory space is saved in the workstation computer. As operating system and application programs expand to provide new and greater capabilities, booting from a server can be highly advantageous.
Several methods of remote booting exist in the marketplace. One is called Remote Initial Program Load (RIPL). RIPL is the process of loading an operating system onto a workstation from a remote location. The RIPL protocol was co-developed by 3Com, Microsoft, and IBM. It is used today with IBM OS/2 Warp Server, DEC Pathworks, and Windows NT. Two other commonly used Remote IPL protocols are a Novell NCP (NetWare Core Protocol), and BOOT-P, an IEEE standard, used with UNIX and TCP/IP networks.
RIPL is achieved using a combination of hardware and software. The requesting device, called the requester or workstation, starts up by asking the loading device to send it a bootstrap program. The loading device is another computer that has a hard disk and is called the RIPL server or file server. The RIPL server uses a loader program to send the bootstrap program to the workstation. Once the workstation receives the bootstrap program, it is then equipped to request an operating system, which in turn can request and use application programs. The software implementations differ between vendors, but theoretically, they all perform similar functions and go through a similar process. The client workstation requires a special Read Only Memory (ROM) installed on its (Local Area Network) LAN adapter or Network Interface Card (NIC). The special ROM is known generally as a remote boot ROM, but two specific examples of remote boot chips are the RIPL chip, which supports ANSI/IEEE standard 802.2, and the Preboot Execution Environment (PXE) chip, which is used in the Transmission Control Protocol/Internet Protocol (TCP/IP) environment.
While remote booting is advantageous when all client computers are the same, it becomes problematical when the population of workstations consists of a wide variety of computer makes and models. In addition, the workstations may be connected to many different types of peripherals. In order to capitalize on the space saving advantages of remote booting, the server must know what operating system to send to a particular computer. The client computers can be divided into classes. For example, if there are ten computers in a network, five may be the same type and the remaining five computers may each be a different type. Therefore, there would be six classes of computers. Presently, identification of the class of a computer is accomplished by the system administrator who must manually enter information about each computer which will identify the class of the computer. The computer will receive an operating system based on the class to which the computer belongs. Once the administrator has identified the class of the computer he will execute a command that will link the computer""s Medium Access Control (MAC) address to the class. By linking the computers MAC address with the class the administrator creates an instance for that computer within the class. Thus there is one instance for every computer in the network. In the previous example, based on ten computers, there were six classes of computers; however, there will be five instances of the first class and one instance for each of the remaining classes or ten instances in all. In RIPL based remote boot environment, the administrator creates the instance by executing the command RIPLMACH at the server which creates the instance and saves it to the server memory. When the client machine requests an operating system, the client machine will be recognized by its instance and the appropriate operating system will be sent. When only a few machines are in the network, it is not too burdensome for the system administrator to create the instance. However, in large networks and in networks where new machines are added routinely, the manual creation of an instance for each computer can be very burdensome. Therefore, a need exists for automation of the administrator""s process of creating an instance for each machine to be in the network.
The invention meeting the needs identified above is a method and apparatus for Client Discovery (CD). Client Discovery is a set of programs that utilize the existing remote boot capability of a network and adds programs to automate the discovery of a computer""s class and the creation of an instance within that class for that specific computer. When a client machine is connected to the network and turned on for the first time, the server will find its request for an operating system, identify that the machine does not have an instance and will send an CD boot block to the client computer. The CD boot block in a RIPL environment consists of Remote Initial Program Load Disk Operating System (RIPL DOS) and a client information gathering program. In a different remote boot environment, the CD boot block would consist of the RIPL DOS equivalent and the client information gathering program. The CD boot block will obtain information about the client computer by automatically scanning everything that the program is able to scan. The client information gathering program may also prompt the user with questions designed by the administrator and include those responses in the client information. The CD boot block will then send the information gathered to a log file in the server. The administrator will have created a set of keys. Keys identify the critical pieces of information that distinguish one class from another class. The server process then uses the keys to look for the critical information in the client information in the log file. When a match is made, the class of the computer is known and the computer is matched to a template which represents the information necessary to identify the operating system for that class and the server that would send the operating system. At the time the match is made, the server program then executes a command to link the client machine""s MAC address to the template creating an instance for the client computer and to save the instance in the server memory. The client machine will then reboot. When it restarts it will now be automatically identified by its instance and the appropriate operating system sent to it. The process occurs each time a new machine is turned on in the network. The administrator only has to create the questions to be presented and set up the template table one time. After that the process takes place automatically without any intervention.